AtCoder Beginner Contest 196 D
種別: 記事
カテゴリ: 競技プログラミング
サブカテゴリ: AtCoder > AtCoder Beginner Contest 196
タグ: #解いた問題 #全探索
(工事中)
2021年3月20日にAtCoder で開催されたコンテストであるAtCoder Beginner Contest 196 のD問題に関するメモ
解き方
解答例
下は上記の方法で解いたときの提出結果である。また、その提出の際に提出したソースコードをその下に転記する。
code: C
#include <stdio.h>
#include <string.h>
int fun1(int h, int w, int a, int b, int h_start, int w_start,int *room) {
int ans = 0;
if (a < 1) {
return 1;
}
for (int i = h_start; i < h; i++) {
int w_init = 0;
if(i == h_start) {
w_init = w_start;
}
for (int j = w_init; j < w; j++) {
if (i < h -1 && roomi*16+j < 1 && room(i+1)*16+j < 1) {
int next_room256 = {};
for (int k = 0; k < h; k++) {
for (int l = 0; l < w; l++) {
next_roomk*16+l = roomk*16+l;
}
}
next_roomi*16+j = 1;
next_room(i+1)*16+j = 1;
ans += fun1(h,w,a-1,b,i,j+1,next_room);
}
if (j < w -1 && roomi*16+j < 1 && roomi*16+j+1 < 1) {
int next_room256 = {};
for (int k = 0; k < h; k++) {
for (int l = 0; l < w; l++) {
next_roomk*16+l = roomk*16+l;
}
}
next_roomi*16+j = 1;
next_roomi*16+j+1 = 1;
ans += fun1(h,w,a-1,b,i,j+1,next_room);
}
}
}
return ans;
}
int main () {
int h = 0;
int w = 0;
int a = 0;
int b = 0;
int ans = 0;
int room256 = {};
int res = 0;
res = scanf("%d", &h);
res = scanf("%d", &w);
res = scanf("%d", &a);
res = scanf("%d", &b);
for (int i = 0; i < h; i++) {
for (int j = 0; j < w; j++) {
roomi*16+j = 0;
}
}
ans = fun1(h,w,a,b,0,0,room);
printf("%d\n",ans);
return 0;
}
私の提出一覧
table: submissions_atcoder_begginer_contest_196_D
提出のURL 提出時刻 結果 備考
1回目 https://atcoder.jp/contests/abc196/submissions/21100391 2021-03-20T22:24:32+0900 AC
感想